December 02, 2021
이 글은 요구사항에 대해서 의문점을 가지고 질문을 던지며 의문점을 해결해나가는 글
입니다.
이전 포스팅에 이어서 이번 포스팅에서도 1주 차 미션의 요구사항에 대해서 탐구해봤던 것을 포스팅해보려 합니다.
요구사항을 보자마자 15라는 특정한 숫자는 어디서 나온 것일까?라는 생각을 하였습니다.
고민을 한 결과, 15라는 숫자는 중요한 것이 아니라 함수의 길이를 최대한 짧게!라는 메시지를 담는 게 아닐까 싶었습니다.
이것에 대한 이유는 이전 포스팅에서 살펴보았던 코드의 depth를 2
까지만 허용한다의 이유와 같지 않을까 싶었습니다.
함수 내부의 코드를 적게 작성하면서 함수가 어떤 역할을 하는지 쉽게 알아볼 수 있도록 하기 위해서가 아닐까 싶습니다.
아래의 글에서는 20~30줄을 권장하고 있습니다. 함수의 line을 짧게 가져가라라고 하는데 이유는 하나의 함수에서는 하나의 역할을 해야 하고 그렇게 된다면 가독성 있는 코드를 작성할 수 있다고 합니다.
JavaScript Code Styling Best Practices — Maximum Function Length, Callbacks, Parameters
아래의 글은 한국에서 유명한 리팩터링의 저자인 Martin Fowler가 함수의 길이에 대해 작성한 포스트입니다.
Martin Folower 또한 최대한 작은 함수를 만들고 코드의 가독성을 높여라라고 말하고 있습니다.
제가 많고 많은 글 중에서 이 분의 글을 인용하는 이유는 유명해서가 아니라 이 분이 짧은 함수의 길이를 사용하는 것에 대해 생각할만한 포인트를 던져줬기 때문
입니다.
Some people are concerned about short functions because they are worried about the performance cost of a function call.
즉, 함수의 길이를 최대한 짧게 가져가기 위해서는 기존보다 더 많은 함수를 만들어야 하고 그렇다면 함수를 호출하는 일이 더 많아질 텐데 성능에 악영향이 있을 것 아니냐라고 사람들이 걱정을 한다는 글입니다.
함수 호출에 따른 성능 저하에 대해 찾아본 결과 여러 글을 찾을 수 있었습니다. 결론은, 함수를 호출하는 정도가 성능에 영향을 끼치는 경우는 상황에 따라 다르다고 합니다.
“How much do function calls impact performance?”
“Function calls are expensive” vs. “Keep functions small”
결론적으로, 가독성(작은 함수, 잦은 호출) vs 성능(큰 함수, 적은 호출) 이 두 가지는 서로 trade off인 관계인듯합니다. 아마 개발자의 스타일에 맞게 둘 중 하나를 고르거나 절충적인 방법을 찾아서 코드를 작성하지 않을까 생각합니다. 저는 성능을 고려하여 최적화된 코드를 짤 단계는 아니라고 생각됩니다. 그보다 다른 사람들과의 협업을 위해 최대한 가독성 있는 코드를 짜고 싶습니다. 그래서 저는 미션의 요구사항인 함수의 길이가 15가 넘지 않게 하라
를 학습하여 앞으로 더 가독성 있게 코드를 작성해보고자 합니다.